package com.aliyun.heiyu.powermaster.server.rotary.service;

import com.aliyun.heiyu.powermaster.proto.CabinetsAndServerReply;
import com.aliyun.heiyu.powermaster.proto.CabinetsAndServerTempReply;
import com.aliyun.heiyu.powermaster.proto.RecommendCabinetReply;
import com.aliyun.heiyu.powermaster.server.rotary.object.entity.CoolServerEntity;

import java.util.List;
import java.util.Map;

/**
 * @Description 服务器业务实现接口
 * @Author shun.zhang
 * @Date 2019/12/31 11:05
 **/
public interface ServerService {
    /**
     *  服务器假数据生成接口
     *
     * @return int
     **/
    int saveServerData();

    /**
     * 获取系统中机柜及其温度最高服务器
     *
     * @return List<CabinetDTO>
     **/
    CabinetsAndServerTempReply queryCabinetServerTemp();

    /**
     * 获取系统中机柜及其温度最低服务器
     *
     * @return List<CabinetDTO>
     **/
    CabinetsAndServerTempReply queryMicrothermCabinetServerTemp();

    /**
     * 根据机柜主键获取机柜服务器数据
     * @Param:
     * @return:
     * @Author: zhangshun
     */
    CabinetsAndServerReply getCabinetTempByDeviceId(String device_id);

    /**
     * 推荐机柜
     * @return RecommendCabinetReply
     */
    RecommendCabinetReply recommendCabinet();
    /**
    * @Description:  获取服务器温度
    * @Param:  sns
    * @return:  Map<String,Double>
    * @Author: zhangshun
    * @Date: 2020/2/18
    */
    Map<String,Integer> getServerTemps(String[] sns);

    /**
     * 校验value低于服务器的的功耗上限
     * @param value 输入的值
     * @param device_id 设备主键
     * @return
     */
    boolean checkLePowerUpper(Double value,String device_id);
}
